#include <mockcpp/mockcpp.hpp>
#include <testngpp/testngpp.hpp>
#include <Length.h>
#include <Unit.h>
#include <LengthOutput.h>
#include <LengthUnit.h>
#include <VolumeUnit.h> 
#include <string>
#include <iostream>
using namespace std;

FIXTURE(Volume)
{
    TEST(1 TRSP == 3 TSP should be true)
    {
        Length<VolumeUnit> volume1(1, TRSP), volume2(3, TSP);
        ASSERT_TRUE(volume1==volume2);
    }

    TEST(3 TRSP ==3 TRSP should be true)
    {
        Length<VolumeUnit> volume1(3, TRSP), volume2(3, TRSP);
        ASSERT_TRUE(volume1==volume2);

    }

    TEST(3 OZ ==3 TRSP should be true)
    {
        Length<VolumeUnit> volume1(3, OZ), volume2(3, TRSP);
        ASSERT_TRUE(volume1==volume2);

    }

    TEST(1 OZ+ 2 TRSP = 3 TRSP)
    {
        Length<VolumeUnit> totalVolume(3,TRSP), volume1(1, OZ), volume2(2, TRSP);
        ASSERT_TRUE(totalVolume==volume1+volume2);
    }
};

#if 0 
FIXTURE(LengthOutput)
{
  TEST(5 TRSP shoult output be "2OZ1TRSP" )
  {
    std::string str("2OZ1TRSP");
    Length<VolumeUnit> volume(5,TRSP);
    ostream out;
    length.outPut(cout, OutPutInSeq<VolumeUnit>::getInstance());
   // ASSERT_EQ(str, out.str());

  } 

  TEST(5 TRSP shoult output be "15TSP" )
  {
    std::string str("15TSP");
    Length<VolumeUnit> volume(5,TRSP);
    ostream out;
    length.outPut(cout, OutPutInBase<VolumeUnit>::getInstance());
   // ASSERT_EQ(str, out.str());

  }

};
#endif









